<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
Route::get('/', function () {
    return view('welcome');
});

*/


//前台路由
Route::group(['namespace'=>'Site','as'=>'site.'],function (){
    //网站首页
    Route::get('/','PageController@index')->name('index');
    //网站栏目列表页,该路由的category如果没有传默认展示所有商品数据,后期可以写
    Route::get('/lists/{category}','PageController@lists')->name('lists');
    //网站详情页
    //第一次打开某个商品的详情页的时候默认展示对应第一个货品的相关信息,后续前台点击某一个货品就展示某一个货品的详细信息,都是这同一个路由但是需要一个product参数,可是这个参数可能有也可能没有
    Route::get('/detail/{goods}/{product?}','PageController@detail')->name('detail');
    //展示搜索结果页路由,这里指定使用post方式,使用post方式就 不需要在地址栏中定义参数了
    Route::get('/search','PageController@search')->name('search');
    //添加购物车路由
    Route::get('/cart/{product}/{num}','CartController@addcart')->name('addcart');
//    购物车页面
    Route::get('/cart/index','CartController@cartIndex')->name('indexcart');
    //通过异步修改购物车中增减购物车中数量的方法
    Route::get('/axioscart/{product}/{num}','CartController@axiosChangeNum');
    //通过异步删除购物车中数据的方法
    Route::get('/axiosdelcart/{product}','CartController@axiosDelCart');
    //用户中心处理路由的控制器方法(下面这个方法订单的不好,center会和后面的路由冲突,下次命名的时候可以用_center以区分),
    //下面这样设置,所有用户中心的get路由默认都会先走到这里.
    //这里就体现出来了给路由起name别名的一个好处了,当我发现这里原本定义的/center与后面的冲突的时候,由于这个路由其有别名,使用的时候也是用的路由别名,所以我可以直接在这里将/center改成/_center页面并不受影响
    Route::get('/_center/{where}','CenterController@luyou')->name('center.where');
    //订单支付路由
    Route::get('/orderPay/{orderNum}','CenterController@orderPay')->name('order.pay');

    Route::post('/wxPayResult','CenterController@wxPayResult')->name('wxPayResult');
    //检测订单状态异步路由
    Route::get('/check_order_status','CenterController@check_order_status')->name('check_order_status');
    Route::get('/xpay','CenterController@xpay');
    //用户收藏路由,需要收藏的模型对象使用模型关联的方式实现向多态收藏表中插入数据
    //所以走这个路由需要携带两个参数一个是要收藏的模型,另外一个是模型id
    Route::get('/collect/{model}/{id}','CenterController@collect')->name('center.collect');

});
//前台用户中心路由组,(这个路由前缀也不是太好,所有这些路由都应该隶属于site前台网站底下,所以下面的路由组别名应该是site.center)
Route::group(['prefix'=>'center','namespace'=>'Site\Center','as'=>'center.','middleware'=>'user'],function (){
    //地址控制器路由
    Route::resource('/address','AddressController');
    //设置默认收货地址方法
    Route::get('/set_default_address/{address}','AddressController@setDefaultAddress')->name('set_default_address');
    //订单控制器路由
    Route::resource('/order','OrderController');
    //点击立即购买进入订单首页的方法
    Route::get('/direct_order_index','OrderController@directIndex')->name('direct.order.index');
});

//前台用户登陆注册路由
Route::group(['namespace'=>'Site\User','as'=>'user.'],function (){
    //展示前台用户登陆页面的路由
    Route::get('/login','UserController@login')->name('login');
    Route::post('/login','UserController@denglu')->name('login');
    //前台用户退出登陆路由
    Route::get('/logout','UserController@logout')->name('logout');
    //前台用户注册路由
    Route::get('/register','UserController@register')->name('register');
    Route::post('/register','UserController@store')->name('register');
    //前台用户修改密码路由
    Route::get('/showEditPasswordView','UserController@showEditPasswordView')->name('showEditPasswordView');
    Route::post('editPassword','UserController@editPassword')->name('editPassword');
});












//后台管理路由
Route::group(['prefix'=>'admin','namespace'=>'Admin','as'=>'admin.'],function (){
    //这个是后台管理的首页,需要验证是否登陆后台,如果没有登陆就跳转到login登陆页面
    Route::get('/','AdminController@index')->name('index');
    Route::get('/login','AdminController@login')->name('login');
    Route::post('/login','AdminController@loginAction')->name('login');
    Route::get('/logout','AdminController@logout')->name('logout');
    //栏目管理
    Route::resource('/category','CategoryController');
    Route::get('/getSonCategory/{id}','CategoryController@getSonCategory')->name('getSonCategory');
});

//商品管理路由
Route::group(['prefix'=>'admin','namespace'=>'Admin','as'=>'admin.','middleware'=>'admin'],function (){
    Route::resource('/goods','GoodsController');
});


//公共路由
Route::group(['prefix'=>'common','namespace'=>'Common','as'=>'common.'],function (){
    //使用hdjs上传图片路由
    Route::any('make','UploadController@make')->name('make');
    Route::any('lists','UploadController@lists')->name('lists');
    //发送邮箱验证路由
    Route::any('code/send','CodeController@send')->name('code.send');
});






//测试用的
Route::get('/home', 'HomeController@index')->name('home');
